<?php
/**
 * @return
 * @author 朱乐斌
 * @date
 */

namespace App\Http\Controllers;

use Illuminate\Support\Facades\DB;

class StudentController extends Controller
{

    // 获取所有学生
    public function seek_student()
    {
        $students = DB::select('select * from student');
        dd($students);
    }

    // 新增学生
    public function add_student()
    {
        $students = DB::insert('insert into student (name,age,sex) values (?,?,?)', ['王6', 19, 1]);
        dd($students);
    }

    // 更新学生
    public function update_student()
    {
        $students = DB::update('update student set age = ? where name = ?', [22, '李四']);
        dd($students);
    }

    // 查询学生
    public function seek_students()
    {
        $students = DB::select('select * from student where name = ?', ['李四']);
        dd($students);
    }

    // 删除学生
    public function delete_student()
    {
        $students = DB::delete('delete from student where name = ?', ['王五']);
        dd($students);
    }

    // 查询构造器 新增学生
    public function query_add()
    {
        // insertGetId 返回的是新增数据的id  insert 返回bool
        $id = DB::table('student')->insertGetId([
            'name' => 'send',
            'age' => 20,
            'sex' => 0
        ]);
        dd($id);
    }

    // 查询构造器 更新学生
    public function query_update()
    {
        $data = DB::table('student')->where('id', '2')->update([
            'age' => 19,
            'sex' => 0
        ]);
        // 自增 带where指定自增 不带默认全部自增并返回 修改的条数 在自增的同时修改其他字段在后面加上[]即可，用逗号隔开
//        $data = DB::table('student')->where('id',2)->increment('age',3,['sex'=>0]);
        // 自减 带where指定自减 不带默认全部自减并返回 修改的条数 头上
//        $data = DB::table('student')->where('id',2)->decrement('age',3,['sex'=>1]);
        dd($data);
    }

    // 查询构造器 删除学生
    public function query_delete()
    {
        // 将条件改为 id >= 5 将会删除5和比5大的所有数据 并返回删除的条数
        $data = DB::table('student')->Where('id', 5)->delete();
        // 不加条件删除所有返回 删除的条数
//        $data = DB::table('student')->delete();
        // 删除所有数据 这个操作不返回任何东西
//        DB::table('student')->truncate();
        dd($data);
    }

    // 查询构造器 查询学生
    public function query_seek()
    {
        // 查询所有数据 first() 返回一条数据
        $data = DB::table('student')->get();
        // 所有数据 只返回name
//        $data = DB::table('student')->pluck('name');
//        $data = DB::table('student')->first();
        // 查询指定字段
//        $data = DB::table('student')->select('name', 'age')->get();
        // 查询指定字段并按照指定字段排序 倒叙排列
//        $data = DB::table('student')->select('id','name','age')->orderBy('age','desc')->get();
        // 条件查询 条件依旧可以>= 某个数值 同上
//        $data = DB::table('student')->where('id',5)->select('name','age')->get();
        // chunk 分块查询 这里还有待研究
//        echo '<pre>';
//        DB::table('student')->chunk(2,function ($num){
//           var_dump($num);
//           if ($num['name'] == '王五'){
//               return false;
//           }
//           return 0;
//        });
        dd($data);
    }
}
